package net.hn.hnms.biz.plan.service;

import net.hn.hnms.biz.plan.request.ExecutionFootageOutputReq;
import net.hn.hnms.biz.plan.vo.ExecutionFootageOutputVO;
import net.hn.hnms.biz.plan.vo.MiningFaceScheduleVo;
import net.hn.hnms.biz.plan.vo.MiningstasticVo;
import net.hn.hnms.sys.common.core.domain.ResponsePage;
import net.hn.hnms.sys.common.mybatis.core.page.PageQuery;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author zhaoyang
 * 进尺产量执行服务层
 * @date 2022-08-02
 */
public interface IExecutionFootageOutputService {

    /**
     *
     * @param executionFootageOutput
     * @param pageQuery
     * 分页查询进尺产量执行列表
     */
    ResponsePage<ExecutionFootageOutputVO> selectPageList(ExecutionFootageOutputReq executionFootageOutput, PageQuery pageQuery);

    /**
     *
     * @param executionFootageOutput
     * 查询进尺产量执行列表
     */
    List<ExecutionFootageOutputVO> selectList(ExecutionFootageOutputReq executionFootageOutput);
    List<ExecutionFootageOutputVO> selectListOfExport(ExecutionFootageOutputReq executionFootageOutput);

    /**
     *
     * @param executionFootageOutput
     * 新增进尺产量执行
     */
    int insert(ExecutionFootageOutputReq executionFootageOutput);

    /**
     *
     * @param idList
     * 批量删除 id集合
     */
    void deleteBatch(List<String> idList);

    /**
     *
     * @param executionFootageOutput
     * 单个更新 根据id主键 更新进尺产量执行详情
     */
    void updateById(ExecutionFootageOutputReq executionFootageOutput);


    /**
     *
     * @param id
     * 通过主键id 查询详情
     */
    ExecutionFootageOutputVO selectDetailById(String id);

    /**
     * 通过工作面ID查询进尺和产量
     * @param id
     * @return
     */
    ExecutionFootageOutputVO selectFootageAndDevelop(String id);


    List<ExecutionFootageOutputVO> detailFootageAndDevelopByData(String id,String date);


    List<ExecutionFootageOutputVO> selectLastSevenDaysDetailFD(String id);

    MiningFaceScheduleVo getMiningFaceSchedule(String id);



    List<ExecutionFootageOutputVO>  getProductionStatisticsDrivage(String beginDate,String mineCode);
    List<ExecutionFootageOutputVO>  getProductionStatisticsMining(String beginDate,String mineCode);


    void exportProductionStatisticsData(HttpServletResponse response, String beginDate,String mineCode);

    List<MiningstasticVo> productionStatisticsList(String beginDate, String mineCode);


}
